<?xml version="1.0" encoding="utf-8"?>
<!-- config.xml used from https://gitlab.e.foundation/e/devices/android_device_fairphone_FP3/-/tree/v1-pie/overlay/frameworks/base,
     but all properties marked as error by phh test/test.sh commented out -->
<!--
    Copyright (c) 2014, The Linux Foundation. All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are
    met:
        * Redistributions of source code must retain the above copyright
          notice, this list of conditions and the following disclaimer.
        * Redistributions in binary form must reproduce the above
          copyright notice, this list of conditions and the following
          disclaimer in the documentation and/or other materials provided
          with the distribution.
        * Neither the name of The Linux Foundation nor the names of its
          contributors may be used to endorse or promote products derived
          from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
    WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
    ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
    BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
    BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
    IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->

<resources>
    <!-- Transferred from Moto G7 Power by GD -->
    <integer name="config_autoPowerModeAnyMotionSensor">30</integer> <!-- 0 at Fp3, 30 at G7 -->
    <integer name="config_mobile_mtu">1410</integer> <!-- 1500 at Fp3, 1410 at G7 -->
    <string-array name="config_defaultPinnerServiceFiles">
            <item>/system/framework/oat/arm64/services.odex</item>
            <item>/system/framework/boot-framework.vdex</item>
    </string-array>

    <!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
         autodetected from the Configuration. -->
    <bool name="config_showNavigationBar">true</bool>

    <!-- Enable system navigation keys. -->
    <bool name="config_supportSystemNavigationKeys">true</bool>

    <!-- When true use the linux /dev/input/event subsystem to detect the switch changes
         on the headphone/microphone jack. When false use the older uevent framework. -->
    <bool name="config_useDevInputEventForAudioJack">true</bool>

    <!-- Flag indicating whether the we should enable the automatic brightness in Settings.
         Software implementation will be used if config_hardware_auto_brightness_available is not set -->
    <bool name="config_automatic_brightness_available">true</bool>

    <!-- Minimum screen brightness setting allowed by the power manager.
         The user is forbidden from setting the brightness below this level. -->
    <integer name="config_screenBrightnessSettingMinimum">1</integer>

    <!-- ComponentName of a dream to show whenever the system would otherwise have
     gone to sleep.  When the PowerManager is asked to go to sleep, it will instead
     try to start this dream if possible.  The dream should typically call startDozing()
     to put the display into a low power state and allow the application processor
     to be suspended.  When the dream ends, the system will go to sleep as usual.
     Specify the component name or an empty string if none.

     Note that doze dreams are not subject to the same start conditions as ordinary dreams.
     Doze dreams will run whenever the power manager is in a dozing state. -->
<!--    <string name="config_doze__Component">com.android.systemui/com.android.systemui.doze.DozeService</string>
-->
    <!-- If true, the doze component is not started until after the screen has been
         turned off and the screen off animation has been performed. -->
    <bool name="config_dozeAfterScreenOffByDefault">true</bool>

    <!-- Power Management: Specifies whether to decouple the auto-suspend state of the
         device from the display on/off state.

         When false, autosuspend_disable() will be called before the display is turned on
         and autosuspend_enable() will be called after the display is turned off.
         This mode provides best compatibility for devices using legacy power management
         features such as early suspend / late resume.

         When true, autosuspend_display() and autosuspend_enable() will be called
         independently of whether the display is being turned on or off.  This mode
         enables the power manager to suspend the application processor while the
         display is on.

         This resource should be set to "true" when a doze component has been specified
         to maximize power savings but not all devices support it.

         Refer to autosuspend.h for details.
    -->
    <bool name="config_powerDecoupleAutoSuspendModeFromDisplay">true</bool>

    <!-- Power Management: Specifies whether to decouple the interactive state of the
         device from the display on/off state.

         When false, setInteractive(..., true) will be called before the display is turned on
         and setInteractive(..., false) will be called after the display is turned off.
         This mode provides best compatibility for devices that expect the interactive
         state to be tied to the display state.

         When true, setInteractive(...) will be called independently of whether the display
         is being turned on or off.  This mode enables the power manager to reduce
         clocks and disable the touch controller while the display is on.

         This resource should be set to "true" when a doze component has been specified
         to maximize power savings but not all devices support it.

         Refer to power.h for details.
    -->
    <bool name="config_powerDecoupleInteractiveModeFromDisplay">false</bool>

    <!-- Screen brightness used to dim the screen while dozing in a very low power state.
         May be less than the minimum allowed brightness setting
         that can be set by the user. -->
    <integer name="config_screenBrightnessDoze">17</integer>

    <!-- Boolean indicating whether the HWC setColorTransform function can be performed efficiently
     in hardware. -->
    <bool name="config_setColorTransformAccelerated">true</bool>
    
    <!-- Control whether Night display is available. This should only be enabled on devices
         that have a HWC implementation that can apply the matrix passed to setColorTransform
         without impacting power, performance, and app compatibility (e.g. protected content). -->
    <bool name="config_nightDisplayAvailable">true</bool>

    <!-- Default screen brightness setting.
         Must be in the range specified by minimum and maximum. -->
    <integer name="config_screenBrightnessSettingDefault">71</integer>

    <!-- Stability requirements in milliseconds for accepting a new brightness level.  This is used
         for debouncing the light sensor.  Different constants are used to debounce the light sensor
         when adapting to brighter or darker environments.  This parameter controls how quickly
         brightness changes occur in response to an observed change in light level that exceeds the
         hysteresis threshold. -->
    <integer name="config_autoBrightnessBrighteningLightDebounce">2000</integer>
    <integer name="config_autoBrightnessDarkeningLightDebounce">8000</integer>

    <!-- The maximum range of gamma adjustment possible using the screen
         auto-brightness adjustment setting. -->
    <fraction name="config_autoBrightnessAdjustmentMaxGamma">300%</fraction>

    <!-- Screen brightness used to dim the screen when the user activity
         timeout expires.  May be less than the minimum allowed brightness setting
         that can be set by the user. -->
    <integer name="config_screenBrightnessDim">1</integer>

    <!-- Is the notification LED intrusive? Used to decide if there should be a disable option -->
    <bool name="config_intrusiveNotificationLed">true</bool>

    <!-- Whether device needs to wait for Qualcomm MPCTL service to start
         before setting power profiles on boot. -->
<!--    <bool name="config_waitForMpctlOnBoot">true</bool>
-->
    <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
         The N entries of this array define N  1 zones as follows:

         Zone 0:        0 <= LUX < array[0]
         Zone 1:        array[0] <= LUX < array[1]
         ...
         Zone N:        array[N - 1] <= LUX < array[N]
         Zone N + 1     array[N] <= LUX < infinity

         Must be overridden in platform specific overlays -->
    <integer-array name="config_autoBrightnessLevels">
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
        <item>8</item>
        <item>12</item>
        <item>20</item>
        <item>33</item>
        <item>55</item>
        <item>90</item>
        <item>148</item>
        <item>245</item>
        <item>403</item>
        <item>665</item>
        <item>1097</item>
        <item>1808</item>
        <item>2981</item>
        <item>5000</item>
    </integer-array>

    <!-- Array of desired screen brightness in nits corresponding to the lux values
         in the config_autoBrightnessLevels array. As with config_screenBrightnessMinimumNits and
         config_screenBrightnessMaximumNits, the display brightness is defined as the measured
         brightness of an all-white image.
         If this is defined then:
            - config_autoBrightnessLcdBacklightValues should not be defined
            - config_screenBrightnessNits must be defined
            - config_screenBrightnessBacklight must be defined
         This array should have size one greater than the size of the config_autoBrightnessLevels
         array. The brightness values must be non-negative and non-decreasing. This must be
         overridden in platform specific overlays -->
    <array name="config_autoBrightnessDisplayValuesNits">
        <item>10.45935</item>   <!-- 0-1 -->
        <item>29.25559</item>   <!-- 1-2 -->
        <item>34.240692</item>  <!-- 2-3 -->
        <item>37.514347</item>  <!-- 3-4 -->
        <item>40.018696</item>  <!-- 4-8 -->
        <item>46.885098</item>  <!-- 8-12 -->
        <item>51.626434</item>  <!-- 12-20 -->
        <item>58.610405</item>  <!-- 20-33 -->
        <item>66.890915</item>  <!-- 33-55 -->
        <item>77.61644</item>   <!-- 55-90 -->
        <item>90.221886</item>  <!-- 90-148 -->
        <item>105.80314</item>  <!-- 148-245 -->
        <item>126.073845</item> <!-- 245-403 -->
        <item>154.16931</item>  <!-- 403-665 -->
        <item>191.83717</item>  <!-- 665-1097 -->
        <item>240.74442</item>  <!-- 1097-1808 -->
        <item>294.84857</item>  <!-- 1808-2981 -->
        <item>348.05453</item>  <!-- 2981-5000 -->
        <item>389.70</item>     <!-- 5000+ -->
    </array>

    <!-- An array of floats describing the screen brightness in nits corresponding to the backlight
         values in the config_screenBrightnessBacklight array.  On OLED displays these  values
         should be measured with an all white image while the display is in the fully on state.
         Note that this value should *not* reflect the maximum brightness value for any high
         brightness modes but only the maximum brightness value obtainable in a sustainable manner.
         This array should be equal in size to config_screenBrightnessBacklight -->
    <array name="config_screenBrightnessNits">
        <item>0</item>
        <item>26.11</item>
        <item>50.5</item>
        <item>74.17</item>
        <item>96.89</item>
        <item>118.3</item>
        <item>139.8</item>
        <item>162.9</item>
        <item>189.8</item>
        <item>217.4</item>
        <item>240.4</item>
        <item>265.3</item>
        <item>288.7</item>
        <item>316</item>
        <item>340.8</item>
        <item>357.9</item>
        <item>376.2</item>
        <item>392.9</item>
    </array>

    <!-- An array describing the screen's backlight values corresponding to the brightness
         values in the config_screenBrightnessNits array.
         This array should be equal in size to config_screenBrightnessBacklight. -->
    <integer-array name="config_screenBrightnessBacklight">
        <item>0</item>
        <item>15</item>
        <item>30</item>
        <item>45</item>
        <item>60</item>
        <item>75</item>
        <item>90</item>
        <item>105</item>
        <item>120</item>
        <item>135</item>
        <item>150</item>
        <item>165</item>
        <item>180</item>
        <item>195</item>
        <item>210</item>
        <item>225</item>
        <item>240</item>
        <item>255</item>
    </integer-array>

   <!-- Indicate whether to allow the device to suspend when the screen is off
   due to the proximity sensor.  This resource should only be set to true
   if the sensor HAL correctly handles the proximity sensor as a wake-up source.
   Otherwise, the device may fail to wake out of suspend reliably.
   The default is false. -->
   <!-- TODO -->
   <bool name="config_suspendWhenScreenOffDueToProximity">true</bool>

   <!-- List of regexpressions describing the interface (if any) that represent tetherable
     USB interfaces.  If the device doesn't want to support tething over USB this should
     be empty.  An example would be "usb.*" -->
    <string-array translatable="false" name="config_tether_usb_regexs">
        <item>"usb\\d"</item>
        <item>"rndis\\d"</item>
    </string-array>

   <!-- List of regexpressions describing the interface (if any) that represent tetherable
          Wifi interfaces.  If the device doesn't want to support tethering over Wifi this
          should be empty.  An example would be "softap.*" -->
   <string-array translatable="false" name="config_tether_wifi_regexs">
       <item>"wigig0"</item>
       <item>"wlan0"</item>
   </string-array>

   <!-- Enable ACS (auto channel selection) for Wifi hotspot (SAP) -->
<!--   <bool translatable="false" name="config_wifi_softap_acs_supported">false</bool>
-->
   <!-- Enable 802.11ac for Wifi hotspot (SAP) -->
<!--   <bool translatable="false" name="config_wifi_softap_ieee80211ac_supported">false</bool>
-->
    <!-- Boolean indicating whether single radio chain scan results are to be used for network selection -->
<!--    <bool translatable="false" name="config_wifi_framework_use_single_radio_chain_scan_results_network_selection">false</bool>
-->
       <!-- Is the device capable of hot swapping an ICC Card -->
    <bool name="config_hotswapCapable">true</bool>

    <!-- Flag specifying whether VoLTE & VT is available on device -->
    <bool name="config_device_volte_available">true</bool>

    <!-- Flag specifying whether VoLTE should be available for carrier: independent of
         carrier provisioning. If false: hard disabled. If true: then depends on carrier
         provisioning, availability etc -->
    <bool name="config_carrier_volte_available">true</bool>

    <!-- Flag specifying whether VoLTE TTY is supported -->
<!--    <bool name="config_carrier_volte_tty_supported">true</bool>
-->
    <!-- Flag specifying whether WFC over IMS is available on device -->
    <bool name="config_device_wfc_ims_available">true</bool>

    <!-- Flag specifying whether WFC over IMS should be available for carrier: independent of
         carrier provisioning. If false: hard disabled. If true: then depends on carrier
         provisioning, availability etc -->
    <bool name="config_carrier_wfc_ims_available">true</bool>

    <!-- Flag specifying whether VT is available on device -->
    <bool name="config_device_vt_available">true</bool>

    <!-- ImsService package name to bind to by default, if config_dynamic_bind_ims is true -->
    <string name="config_ims_package">org.codeaurora.ims</string>

    <!-- Flag specifying whether or not IMS will use the ImsResolver dynamically -->
    <bool name="config_dynamic_bind_ims">true</bool>

    <!-- Vibrator pattern for feedback about a long screen/key press -->
    <integer-array name="config_longPressVibePattern">
        <item>0</item>
        <item>1</item>
        <item>20</item>
        <item>30</item>
    </integer-array>

    <!-- Vibrator pattern for feedback about touching a virtual key -->
    <integer-array name="config_virtualKeyVibePattern">
        <item>20</item>
    </integer-array>

    <!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
    <integer-array name="config_keyboardTapVibePattern">
        <item>0</item>
        <item>05</item>
    </integer-array>

    <!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
    <integer name="config_shutdownBatteryTemperature">625</integer>


    <!-- This string array should be overridden by the device to present a list of network
     attributes.  This is used by the connectivity manager to decide which networks can coexist
     based on the hardware -->
    <!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
         [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet]  -->
    <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
         before automatically restore the default connection.  Set -1 if the connection
         does not require auto-restore. -->
    <!-- the 6th element indicates boot-time dependency-met value. -->
    <string-array translatable="false" name="networkAttributes">
        <item>"wifi,1,1,1,-1,true"</item>
        <item>"mobile,0,0,0,-1,true"</item>
        <item>"mobile_mms,2,0,4,60000,true"</item>
        <item>"mobile_supl,3,0,2,60000,true"</item>
        <item>"mobile_dun,4,0,2,60000,true"</item>
        <item>"mobile_hipri,5,0,3,60000,true"</item>
        <item>"mobile_fota,10,0,2,60000,true"</item>
        <item>"mobile_ims,11,0,2,60000,true"</item>
        <item>"mobile_cbs,12,0,2,60000,true"</item>
        <item>"bluetooth,7,7,2,-1,true"</item>
        <item>"ethernet,9,9,9,-1,true"</item>
        <item>"mobile_emergency,15,0,5,-1,true"</item>
    </string-array>

    <!-- Configure mobile tcp buffer sizes in the form:
         rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
         If no value is found for the rat-name in use, the system default will be applied.
    -->
    <string-array name="config_mobile_tcp_buffers">
        <item>5gnr:2097152,6291456,16777216,512000,2097152,8388608</item>
        <item>lte:524288,1048576,8388608,262144,524288,4194304</item>
        <item>lte_ca:1048576,2097152,16777216,524288,1048576,8388608</item>
        <item>umts:131072,262144,1452032,4096,16384,399360</item>
        <item>hspa:131072,262144,1452032,4096,16384,399360</item>
        <item>hsupa:131072,262144,1452032,4096,16384,399360</item>
        <item>hsdpa:131072,262144,1452032,4096,16384,399360</item>
        <item>hspap:131072,262144,1452032,4096,16384,399360</item>
        <item>edge:16384,32768,131072,4096,16384,65536</item>
        <item>gprs:4096,8192,24576,4096,8192,24576</item>
        <item>evdo:131072,262144,1048576,4096,16384,524288</item>
        <item>ehrpd:4094,87380,1048576,4096,16384,262144</item>
    </string-array>

    <!-- This string array should be overridden by the device to present a list of radio
         attributes.  This is used by the connectivity manager to decide which networks can coexist
         based on the hardware -->
    <!-- An Array of "[ConnectivityManager connectionType],
                      [# simultaneous connection types]"  -->
    <string-array translatable="false" name="radioAttributes">
        <item>1,1</item>
        <item>0,1</item>
        <item>7,1</item>
        <item>9,1</item>
    </string-array>

    <!-- Boolean indicating if restoring network selection should be skipped -->
    <!-- The restoring is handled by modem if it is true-->
    <bool translatable="false" name="skip_restoring_network_selection">true</bool>

    <!-- Config determines whether to update phone object when voice registration
         state changes. Voice radio tech change will always trigger an update of
         phone object irrespective of this config -->
    <bool name="config_switch_phone_on_voice_reg_state_change">false</bool>

        <!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
<!--    <bool name="config_cell__BroadcastAppLinks">true</bool>
-->
    <!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
    <bool translatable="false" name="config_wifi_dual_band_support">true</bool>

    <!-- Boolean indicating whether the wifi chipset supports background scanning mechanism.
         This mechanism allows the host to remain in suspend state and the dongle to actively
         scan and wake the host when a configured SSID is detected by the dongle. This chipset
         capability can provide power savings when wifi needs to be always kept on. -->
    <bool translatable="false" name="config_wifi_background_scan_support">true</bool>

    <!-- Wifi driver supports batched scan -->
    <bool translatable="false" name="config_wifi_batched_scan_supported">true</bool>

    <!-- Boolean indicating whether or not to revert to default country code when cellular
         radio is unable to find any MCC information to infer wifi country code from -->
<!--    <bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">true</bool>
-->
    <!-- Boolean indicating whether or not wifi should turn off when emergency call is made -->
<!--    <bool translatable="false" name="config_wifi_turn_off_during_emergency_call">true</bool>
-->
    <!-- Values for GPS configuration -->
    <string-array translatable="false" name="config_gpsParameters">
        <item>NTP_SERVER=europe.pool.ntp.org</item>
        <item>#SUPL_HOST=supl.google.com</item>
        <item>#SUPL_PORT=7275</item>
        <item>SUPL_VER=0x30000</item>
        <item>#SUPL_MODE=1</item>
        <item>#SUPL_ES=1</item>
        <item>#LPP_PROFILE=3</item>
        <item>USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=1</item>
        <item>A_GLONASS_POS_PROTOCOL_SELECT=15</item>
        <item>#GPS_LOCK=0</item>
    </string-array>

    <!-- Component name of the combo network location provider. -->
<!--    <string name="config_comboNetworkLocationProvider" translatable="false">com.qualcomm.location</string>
-->
        <!-- Remote server that can provide NTP responses. -->
<!--    <string translatable="false" name="config_ntpServer">europe.pool.ntp.org</string>
-->
    <!-- Whether WiFi display is supported by this device.
     There are many prerequisites for this feature to work correctly.
     Here are a few of them:
     * The WiFi radio must support WiFi P2P.
     * The WiFi radio must support concurrent connections to the WiFi display and
       to an access point.
     * The Audio Flinger audio_policy.conf file must specify a rule for the "r_submix"
       remote submix module.  This module is used to record and stream system
       audio output to the WiFi display encoder in the media server.
     * The remote submix module "audio.r_submix.default" must be installed on the device.
     * The device must be provisioned with HDCP keys (for protected content). -->
<!--    <bool name="config_enableWifiDisplay">true</bool>
-->
</resources>
